package main

import (
	"fmt"
	"log"

	"enterprise-wechat-pay-sdk/config"
	"enterprise-wechat-pay-sdk/handler"

	"github.com/gin-gonic/gin"
)

func main() {
	// 初始化配置
	if err := config.Init(); err != nil {
		log.Fatalf("Failed to initialize config: %v", err)
	}

	// 设置gin模式
	gin.SetMode(config.GlobalConfig.Server.Mode)

	// 创建路由
	r := gin.Default()

	// 注册路由
	api := r.Group("/api/v1")
	{
		payment := api.Group("/payment")
		{
			payment.POST("/create", handler.CreatePayment) // 创建支付订单
			payment.POST("/close", handler.CloseOrder)     // 关闭订单
			payment.POST("/query", handler.QueryOrder)     // 查询订单
			payment.POST("/sign", handler.GetSign)         // 获取支付签名
		}

		callback := api.Group("/callback")
		{
			callback.GET("/verify", handler.VerifyCallback)  // 验证回调URL
			callback.POST("/notify", handler.HandleCallback) // 处理回调消息
		}

		token := api.Group("/token")
		{
			token.GET("/access", handler.GetAccessToken) // 获取access_token
		}
	}

	// 启动服务器
	addr := fmt.Sprintf(":%d", config.GlobalConfig.Server.Port)
	if err := r.Run(addr); err != nil {
		log.Fatalf("Failed to start server: %v", err)
	}
}
